import Vue from "vue"
import Vuex from "vuex"

const files = require.context('.', true, /\.js$/)
// require.context(directory, useSubdirectories, regExp)
// directory: 表示检索的目录
// useSubdirectories: 表示是否检索子文件夹
// regExp: 匹配文件的正则表达式，一般是文件名

const modules = {}

files.keys().forEach(key => {
	if (key === './index.js') return;
	// 正则表达式 /(\.\/|\.js)/g，其中 \. 表示匹配点号（.），\/ 表示匹配斜杠（/），| 表示或，g 表示全局搜索。所以，(\.\/|\.js) 表示匹配 ./ 或 .js
	// 使用 replace 方法将字符串中所有匹配到的 ./ 和 .js 替换为空字符串 ''，即将相对路径的 ./ 和文件后缀的 .js 去掉。
	// 使用 split 方法将字符串按照 / 分隔成数组。这样就得到了一个不包含相对路径和文件后缀的文件名数组，可以用于动态导入模块等场景。
	let _key = key.replace(/(\.\/|\.js)/g, '').split('/');
	modules[_key[1] || _key[0]] = files(key).default || files(key);
})

Vue.use(Vuex)

export default new Vuex.Store({
	modules
})